﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace IChessEngine
{
    public interface IChsGame : IChsGameInfo
    {
        IChsGamePosition GetRootPosition();
        IChsGameMovement AddMovement(IChsGamePosition currentPosition, IChsMovement movement);
        void AddMovement(IChsGameMovement movement);
        IChsGamePosition GetTargetPosition(IChsGameMovement movement);
        IChsGamePosition GetTargetPosition(Guid positionId);
        IChsGamePosition FindBackwardPosition(IChsGamePosition currentPosition);
        List<IChsGameMovement> FindForwardMovements(IChsGamePosition currentPosition);
        List<IChsGameMovement> Movements { get; }
    }
}
